package org.jeecg.common.constant.enums;

public enum BaiduErrorCode {
    UNKNOWN_ERROR(1, "未知错误，请再次请求，如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    SERVICE_TEMPORARILY_UNAVAILABLE(2, "服务暂不可用，请再次请求，如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    UNSUPPORTED_OPENAPI_METHOD(3, "调用的API不存在，请检查请求URL后重新尝试，一般为URL中有非英文字符，如\"-\"，可手动输入重试"),
    OPEN_API_REQUEST_LIMIT_REACHED(4, "集群超限额，请再次请求，如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    NO_PERMISSION_TO_ACCESS_DATA(6, "无接口调用权限，创建应用时未勾选相关文字识别接口，请登录百度云控制台，找到对应的应用，编辑应用，勾选上相关接口后重新调用，也可使用权限额度诊断工具完成自助诊断"),
    IAM_CERTIFICATION_FAILED(14, "IAM鉴权失败，建议用户参照文档自查生成sign的方式是否正确，或换用控制台中ak sk的方式调用"),
    OPEN_API_DAILY_REQUEST_LIMIT_REACHED(17, "免费测试资源使用完毕，每天请求量超限额，已支持计费的接口，您可以在控制台文字识别服务选择购买相关接口的次数包或开通按量后付费；邀测和未支持计费的接口，您可以在控制台提交工单申请提升限额，也可先使用权限额度诊断工具完成自助诊断"),
    OPEN_API_QPS_REQUEST_LIMIT_REACHED(18, "QPS超限额，免费额度并发限制为2QPS，开通按量后付费或购买次数包后并发限制为10QPS，如您需要更多的并发量，可以选择购买QPS叠加包；邀测和未支持计费的接口，您可以在控制台提交工单申请提升限额，也可先使用权限额度诊断工具完成自助诊断"),
    OPEN_API_TOTAL_REQUEST_LIMIT_REACHED(19, "请求总量超限额，已支持计费的接口，您可以在控制台文字识别服务选择购买相关接口的次数包或开通按量后付费；邀测和未支持计费的接口，您可以在控制台提交工单申请提升限额"),
    INVALID_PARAMETER(100, "无效的access_token参数，token拉取失败，您可以参考“Access Token获取”文档重新获取"),
    ACCESS_TOKEN_INVALID_OR_NO_LONGER_VALID(110, "access_token无效，token有效期为30天，请注意需要定期更换，也可以每次请求都拉取新token"),
    ACCESS_TOKEN_EXPIRED(111, "access token过期，token有效期为30天，请注意需要定期更换，也可以每次请求都拉取新token"),
    INVALID_PARAM(216100, "请求中包含非法参数，请检查后重新尝试"),
    NOT_ENOUGH_PARAM(216101, "缺少必须的参数，请检查参数是否有遗漏"),
    SERVICE_NOT_SUPPORT(216102, "请求了不支持的服务，请检查调用的url"),
    PARAM_TOO_LONG(216103, "请求中某些参数过长，请检查后重新尝试"),
    APPID_NOT_EXIST(216110, "appid不存在，请重新核对信息是否为后台应用列表中的appid"),
    EMPTY_IMAGE(216200, "图片为空，请检查后重新尝试"),
    IMAGE_FORMAT_ERROR(216201, "上传的图片格式错误，现阶段我们支持的图片格式为：PNG、JPG、JPEG、BMP，请进行转码或更换图片"),
    IMAGE_SIZE_ERROR(216202, "上传的图片大小错误，请根据调用服务的接口文档，查看请求参数image要求，重新上传图片"),
    INPUT_OVERSIZE(216205, "传入的请求体大小错误，现阶段我们支持的请求体最大上限为：base64编码后小于10M，请重新发送请求"),
    UPLOAD_FILE_ERROR(216306, "上传文件失败，请检查提交请求接口的请求参数"),
    PDF_FILE_NUM_EXCEEDS_THE_NUMBER_OF_PDF_PAGES(216308, "参数pdf_file_num大于PDF文件实际页数"),
    CREATE_TASK_FAILED(216401, "提交请求失败"),
    QUERY_TASK_FAILED(216402, "获取结果失败"),
    CHECK_PDF_PAGE_NUM_FAILED(216603, "获取PDF文件页数失败，请检查PDF文件以及base64编码"),
    INSUFFICIENT_AVAILABLE_QUOTA(216604, "请求总量超限额，您可以购买或申请更多限额"),
    RECOGNIZE_ERROR(216630, "识别错误，请再次请求，请确保图片中包含对应卡证票据"),
    RECOGNIZE_BANK_CARD_ERROR(216631, "识别银行卡错误，出现此问题的原因一般为：您上传的图片非银行卡正面，上传了异形卡的图片、上传的银行卡正面图片不完整或模糊"),
    RECOGNIZE_IDCARD_ERROR(216633, "识别身份证错误，出现此问题的原因一般为：您上传了非身份证图片、上传的身份证图片不完整或模糊"),
    DETECT_ERROR(216634, "检测错误，请再次请求，如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    BUSINESS_VERIFY_FAILED(216600, "企业核验相关服务请求失败，请再次请求，仅适用于企业核验相关服务：企业工商信息查询（标准版/高级版）、企业二/三/四要素核验。如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    BUSINESS_VERIFY_RESULT_EMPTY(216601, "企业核验相关服务查询成功，但是无查询结果返回，请再次请求，仅适用于企业核验相关服务：企业工商信息查询（标准版/高级版）、企业二/三/四要素核验。如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    BUSINESS_VERIFY_TIMEOUT(216602, "企业核验相关服务接口超时，请再次请求，仅适用于企业核验相关服务：企业工商信息查询（标准版/高级版）、企业二/三/四要素核验。如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    INTERNAL_ERROR(282000, "服务器内部错误，如果您使用的是高精度接口，报这个错误码的原因可能是您上传的图片中文字过多，识别超时导致的，建议您对图片进行切割后再识别，其他情况请再次请求， 如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    MISSING_PARAMETERS(282003, "请求参数缺失"),
    BATCH_PROCESSING_ERROR(282005, "处理批量任务时发生部分或全部错误，请根据具体错误码排查"),
    BATCH_TASK_LIMIT_REACHED(282006, "批量任务处理数量超出限制，请将任务数量减少到10或10以下"),
    IMAGE_TRANSCODE_ERROR(282100, "图片压缩转码错误"),
    TARGET_DETECT_ERROR(282102, "未检测到图片中识别目标，请确保图片中包含对应卡证票据，出现此问题的原因一般为：您上传了非卡证图片、图片不完整或模糊"),
    RECOGNIZE_ERROR_FAILED_TO_MATCH_TEMPLATE(282103, "图片目标识别错误，请确保图片中包含对应卡证票据，出现此问题的原因一般为：您上传了非卡证图片、图片不完整或模糊"),
    URLS_NOT_EXIST(282110, "URL参数不存在，请核对URL后再次提交"),
    URL_FORMAT_ILLEGAL(282111, "URL格式非法，请检查url格式是否符合相应接口的入参要求"),
    URL_DOWNLOAD_TIMEOUT(282112, "URL下载超时，请检查url对应的图床/图片无法下载或链路状况不好，或图片大小大于3M，或图片存在防盗链，您可以重新尝试以下，如果多次尝试后仍不行，建议更换图片地址"),
    URL_RESPONSE_INVALID(282113, "URL返回无效参数"),
    URL_SIZE_ERROR(282114, "URL长度超过1024字节或为0"),
    OFFICIAL_WEB_SERVICE_EXCEPTION(282134, "仅适用于增值税发票验真接口，国税局端网络超时（一般因地方税务局升级或系统调整造成，建议您第2日重试，如果持续出现此类错误，请在控制台提交工单联系技术支持团队）"),
    REQUEST_ID_NOT_EXIST(282808, "request id xxxxx 不存在"),
    RESULT_TYPE_ERROR(282809, "返回结果请求错误（不属于excel或json）"),
    IMAGE_RECOGNIZE_ERROR(282810, "图像识别错误，请再次请求，如果持续出现此类错误，请在控制台提交工单联系技术支持团队"),
    DRIVING_LICENSE_BACKEND_RESOURCE_OVERRUN(282160, "后端资源超限，仅适用于行驶证核验接口，请在控制台提交工单联系技术支持团队"),
    DRIVING_LICENSE_REQUESTS_TOO_FREQUENTLY(282161, "请求过于频繁，仅适用于行驶证核验接口");

    // 这里继续添加其他错误码

    private final Integer code;
    private final String message;

    BaiduErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }


    public static BaiduErrorCode getInstance(Integer code){
        for (BaiduErrorCode value : BaiduErrorCode.values()) {
            if (code.equals(value.getCode())) {
                return value;
            }
        }
        throw new RuntimeException("未知编码错误");
    }
}
